// Copyright 2025 The Lynx Authors. All rights reserved.
// Licensed under the Apache License Version 2.0 that can be found in the
// LICENSE file in the root directory of this source tree.

const compilerOptionsKeys = [
  'bundleModuleMode',
  'debugInfoOutside',
  'defaultDisplayLinear',
  'defaultOverflowVisible',
  'disableMultipleCascadeCSS',
  'enableAirRawCSS',
  'enableComponentConfig',
  'enableCSSAsyncDecode',
  'enableCSSClassMerge',
  'enableCSSEngine',
  'enableCssExternalClass',
  'enableCSSInvalidation',
  'enableCSSLazyDecode',
  'enableCSSSelector',
  'enableCSSStrictMode',
  'enableCSSVariable',
  'enableDynamicComponent',
  'enableEventRefactor',
  'enableFiberArch',
  'enableFlexibleTemplate',
  'enableKeepPageData',
  'enableLepusChunkAsyncDecode',
  'enableLepusDebug',
  'enableLynxAir',
  'enableParallelElement',
  'enableRadon',
  'enableRemoveCSSScope',
  'enableReuseContext',
  'enableSimpleStyling',
  'experimental_encodeQuickjsBytecode',
  'forceCalcNewStyle',
  'implicitAnimation',
  'lynxAirMode',
  'removeCSSParserLog',
  'targetSdkVersion',
  'templateDebugUrl',
  'trialOptions',
  'useLepusNG',
]

const configKeys = [
  'absoluteInContentBound',
  'asyncRedirect',
  'autoExpose',
  'CSSAlignWithLegacyW3C',
  'customCSSInheritanceList',
  'dataStrictMode',
  'disableLongpressAfterScroll',
  'disableQuickTracingGC',
  'enableA11y',
  'enableAccessibilityElement',
  'enableAirDetectRemovedKeysWhenUpdateData',
  'enableAsyncInitVideoEngine',
  'enableAsyncRequestImage',
  'enableAsyncResolveSubtree',
  'enableCheckExposureOptimize',
  'enableCheckLocalImage',
  'enableCircularDataCheck',
  'enableComponentAsyncDecode',
  'enableComponentLifecycleAlignWebview',
  'enableComponentNullProp',
  'enableCreateViewAsync',
  'enableCSSInheritance',
  'enableCSSInlineVariables',
  'enableCSSLazyImport',
  'enableCSSStrictMode',
  'enableDisexposureWhenLynxHidden',
  'enableEndGestureAtLastFingerUp',
  'enableEventHandleRefactor',
  'enableEventThrough',
  'enableExposureUIMargin',
  'enableExposureWhenLayout',
  'enableExposureWhenReload',
  'enableFiberElementForRadonDiff',
  'enableFixedNew',
  'enableHarmonyNewOverlay',
  'enableHarmonyVisibleAreaChangeForExposure',
  'enableICU',
  'enableImageDownsampling',
  'enableJsBindingApiThrowException',
  'enableJSDataProcessor',
  'enableListMoveOperation',
  'enableListNewArchitecture',
  'enableListPlug',
  'enableLynxScrollFluency',
  'enableMicrotaskPromisePolyfill',
  'enableMTSPreExecute',
  'enableMultiTouch',
  'enableMultiTouchParamsCompatible',
  'enableNativeList',
  'enableNewAnimator',
  'enableNewClipMode',
  'enableNewGesture',
  'enableNewImage',
  'enableNewIntersectionObserver',
  'enableNewListContainer',
  'enableNewTransformOrigin',
  'enablePlatformGesture',
  'enablePropertyBasedSimpleStyle',
  'enableQueryComponentSync',
  'enableReactOnlyPropsId',
  'enableReduceInitDataCopy',
  'enableReloadLifecycle',
  'enableRemoveComponentExtraData',
  'enableReuseLoadScriptExports',
  'enableSignalAPI',
  'enableSimultaneousTap',
  'enableTextBoringLayout',
  'enableTextGradientOpt',
  'enableTextLanguageAlignment',
  'enableTextLayerRender',
  'enableTextLayoutCache',
  'enableTextNonContiguousLayout',
  'enableTextOverflow',
  'enableTextRefactor',
  'enableTouchRefactor',
  'enableUIOperationOptimize',
  'enableUnifiedPipeline',
  'enableUseContextPool',
  'enableUseMapBuffer',
  'enableViewReceiveTouch',
  'enableVsyncAlignedFlush',
  'enableXTextLayoutReused',
  'extendedLayoutOnlyOpt',
  'extraInfo',
  'flatten',
  'fontScaleEffectiveOnlyOnSp',
  'implicit',
  'includeFontPadding',
  'keyboardCallbackPassRelativeHeight',
  'lepusGCThreshold',
  'lepusNullPropAsUndef',
  'lepusQuickjsStacksize',
  'lepusStrict',
  'longPressDuration',
  'mapContainerType',
  'observerFrameRate',
  'pipelineSchedulerConfig',
  'preferredFps',
  'quirksMode',
  'removeDescendantSelectorScope',
  'strictPropType',
  'tapSlop',
  'trailNewImage',
  'unifyVWVHBehavior',
  'useImagePostProcessor',
  'useNewSwiper',
  'autoResumeAnimation',
  'cli',
  'compileRender',
  'customData',
  'enableA11yIDMutationObserver',
  'enableAsyncDisplay',
  'enableBackgroundShapeLayer',
  'enableCascadePseudo',
  'enableCheckDataWhenUpdatePage',
  'enableComponentLayoutOnly',
  'enableGlobalComponentMap',
  'enableNativeScheduleCreateViewAsync',
  'enableNewAccessibility',
  'enableNewLayoutOnly',
  'enableOptPushStyleToBundle',
  'enableOverlapForAccessibilityElement',
  'fixCSSImportRuleOrder',
  'forceCalcNewStyle',
  'reactVersion',
  'redBoxImageSizeWarningThreshold',
  'removeComponentElement',
  'syncImageAttach',
  'useNewImage',
  'version',
]

module.exports = {
  compilerOptionsKeys,
  configKeys,
}
